home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume6 / xfig2 / patch4c < prev    next >
Encoding:
Internet Message Format  |  1993-04-28  |  31.5 KB

  1. From: envbvs@epb3.lbl.gov (Brian V. Smith)
  2. Newsgroups: comp.sources.x
  3. Subject: v06i036: xfig 2.0 patch 4 Part 3/3
  4. Message-ID: <132968@sun.Eng.Sun.COM>
  5. Date: 15 Mar 90 07:54:21 GMT
  6. Approved: argv@sun.com
  7.  
  8. Submitted-by: envbvs@epb3.lbl.gov (Brian V. Smith)
  9. Posting-number: Volume 6, Issue 36
  10. Archive-name: xfig2/patch4c
  11. Patch-To: xifg2: Volume 6, Issues 9-24
  12.  
  13. #! /bin/sh
  14. # This is a shell archive.  Remove anything before this line, then unpack
  15. # it by saving it into a file and typing "sh file".  To overwrite existing
  16. # files, type "sh file -c".  You can also feed this as standard input via
  17. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  18. # will see the following message at the end:
  19. #        "End of archive 3 (of 3)."
  20. # Contents:  panel.c.diff
  21. # Wrapped by envbvs@epb3.lbl.gov on Mon Mar 12 16:28:08 1990
  22. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  23. if test -f 'panel.c.diff' -a "${1}" != "-c" ; then 
  24.   echo shar: Will not clobber existing file \"'panel.c.diff'\"
  25. else
  26. echo shar: Extracting \"'panel.c.diff'\" \(29567 characters\)
  27. sed "s/^X//" >'panel.c.diff' <<'END_OF_FILE'
  28. X*** panel.c.old    Mon Feb 26 16:41:18 1990
  29. X--- panel.c    Mon Mar 12 12:04:18 1990
  30. X***************
  31. X*** 39,44
  32. X  extern    char    *printer_list[];
  33. X  extern    int    INCHES;
  34. X  extern    TOOL    fontmenu;        /* popup menu for printer fonts */
  35. X  
  36. X  /**************     local variables and routines   **************/
  37. X  
  38. X
  39. X--- 39,45 -----
  40. X  extern    char    *printer_list[];
  41. X  extern    int    INCHES;
  42. X  extern    TOOL    fontmenu;        /* popup menu for printer fonts */
  43. X+ extern    int    figure_modified;
  44. X  
  45. X  /**************     local variables and routines   **************/
  46. X  
  47. X***************
  48. X*** 111,116
  49. X      { 0, 0, 0, 0, &line_ic, F_POLYLINE, set_command, null_proc, S_ON, },
  50. X      { 0, 0, 0, 0, &polygon_ic, F_POLYGON, set_command, null_proc, S_ON, },
  51. X      { 0, 0, 0, 0, &box_ic, F_BOX, set_command, null_proc, S_ON, },
  52. X      { 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
  53. X      { 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
  54. X      { 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
  55. X
  56. X--- 112,119 -----
  57. X      { 0, 0, 0, 0, &line_ic, F_POLYLINE, set_command, null_proc, S_ON, },
  58. X      { 0, 0, 0, 0, &polygon_ic, F_POLYGON, set_command, null_proc, S_ON, },
  59. X      { 0, 0, 0, 0, &box_ic, F_BOX, set_command, null_proc, S_ON, },
  60. X+ #ifndef TFX
  61. X+     /* no rounded-corner boxes with TFX */
  62. X      { 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
  63. X  #endif
  64. X      { 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
  65. X***************
  66. X*** 112,117
  67. X      { 0, 0, 0, 0, &polygon_ic, F_POLYGON, set_command, null_proc, S_ON, },
  68. X      { 0, 0, 0, 0, &box_ic, F_BOX, set_command, null_proc, S_ON, },
  69. X      { 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
  70. X      { 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
  71. X      { 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
  72. X      { 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
  73. X
  74. X--- 115,121 -----
  75. X  #ifndef TFX
  76. X      /* no rounded-corner boxes with TFX */
  77. X      { 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
  78. X+ #endif
  79. X      { 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
  80. X      { 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
  81. X      { 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
  82. X***************
  83. X*** 115,120
  84. X      { 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
  85. X      { 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
  86. X      { 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
  87. X      { 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
  88. X      { 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
  89. X      { 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
  90. X
  91. X--- 119,127 -----
  92. X      { 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
  93. X      { 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
  94. X      { 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
  95. X+ #ifdef TFX    /* put arrow before glue */
  96. X+     { 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
  97. X+ #endif
  98. X      { 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
  99. X      { 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
  100. X      { 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
  101. X***************
  102. X*** 118,123
  103. X      { 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
  104. X      { 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
  105. X      { 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
  106. X      { 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
  107. X      { 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
  108. X      { 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
  109. X
  110. X--- 125,131 -----
  111. X      { 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
  112. X      { 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
  113. X      { 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
  114. X+ #ifndef TFX    /* put arrow after glue */
  115. X      { 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
  116. X  #endif
  117. X      { 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
  118. X***************
  119. X*** 119,124
  120. X      { 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
  121. X      { 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
  122. X      { 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
  123. X      { 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
  124. X      { 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
  125. X      { 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
  126. X
  127. X--- 127,133 -----
  128. X      { 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
  129. X  #ifndef TFX    /* put arrow after glue */
  130. X      { 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
  131. X+ #endif
  132. X      { 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
  133. X      { 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
  134. X  #ifdef TFX    /* put movept before move */
  135. X***************
  136. X*** 121,126
  137. X      { 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
  138. X      { 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
  139. X      { 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
  140. X      { 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
  141. X      { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  142. X      { 0, 0, 0, 0, ©_ic, F_COPY, set_command, null_proc, S_ON, },
  143. X
  144. X--- 130,138 -----
  145. X  #endif
  146. X      { 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
  147. X      { 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
  148. X+ #ifdef TFX    /* put movept before move */
  149. X+     { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  150. X+ #endif
  151. X      { 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
  152. X  #ifndef TFX    /* put movept after move */
  153. X      { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  154. X***************
  155. X*** 122,127
  156. X      { 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
  157. X      { 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
  158. X      { 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
  159. X      { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  160. X      { 0, 0, 0, 0, ©_ic, F_COPY, set_command, null_proc, S_ON, },
  161. X      { 0, 0, 0, 0, &remove_ic, F_REMOVE, set_command, null_proc, S_ON, },
  162. X
  163. X--- 134,140 -----
  164. X      { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  165. X  #endif
  166. X      { 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
  167. X+ #ifndef TFX    /* put movept after move */
  168. X      { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  169. X  #endif
  170. X      { 0, 0, 0, 0, ©_ic, F_COPY, set_command, null_proc, S_ON, },
  171. X***************
  172. X*** 123,128
  173. X      { 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
  174. X      { 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
  175. X      { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  176. X      { 0, 0, 0, 0, ©_ic, F_COPY, set_command, null_proc, S_ON, },
  177. X      { 0, 0, 0, 0, &remove_ic, F_REMOVE, set_command, null_proc, S_ON, },
  178. X      { 0, 0, 0, 0, &flip_x_ic, F_FLIP_XAXIS, set_command, null_proc, S_ON, },
  179. X
  180. X--- 136,142 -----
  181. X      { 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
  182. X  #ifndef TFX    /* put movept after move */
  183. X      { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  184. X+ #endif
  185. X      { 0, 0, 0, 0, ©_ic, F_COPY, set_command, null_proc, S_ON, },
  186. X      { 0, 0, 0, 0, &remove_ic, F_REMOVE, set_command, null_proc, S_ON, },
  187. X      { 0, 0, 0, 0, &flip_x_ic, F_FLIP_XAXIS, set_command, null_proc, S_ON, },
  188. X***************
  189. X*** 129,135
  190. X      { 0, 0, 0, 0, &flip_y_ic, F_FLIP_YAXIS, set_command, null_proc, S_ON, },
  191. X      { 0, 0, 0, 0, &rot90_ic, F_ROTATE90, set_command, null_proc, S_ON, },
  192. X      { 0, 0, 0, 0, &rot270_ic, F_ROTATE270, set_command, null_proc, S_ON, },
  193. X! 
  194. X      /* place holders to align some button groups */
  195. X      { 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
  196. X  
  197. X
  198. X--- 143,149 -----
  199. X      { 0, 0, 0, 0, &flip_y_ic, F_FLIP_YAXIS, set_command, null_proc, S_ON, },
  200. X      { 0, 0, 0, 0, &rot90_ic, F_ROTATE90, set_command, null_proc, S_ON, },
  201. X      { 0, 0, 0, 0, &rot270_ic, F_ROTATE270, set_command, null_proc, S_ON, },
  202. X! #ifndef TFX
  203. X      /* place holders to align some button groups */
  204. X      { 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
  205. X  #endif
  206. X***************
  207. X*** 132,138
  208. X  
  209. X      /* place holders to align some button groups */
  210. X      { 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
  211. X! 
  212. X      { 0, 1, 0, 0, &grid1_ic, F_GRID1, set_grid, set_grid, S_TOG, },
  213. X      { 0, 1, 0, 0, &grid2_ic, F_GRID2, set_grid, set_grid, S_TOG, },
  214. X      { 1, 2, 0, 0, &unconstraint_ic, F_UNCONSTRAINT, set_geometry, null_proc, S_ON, },
  215. X
  216. X--- 146,152 -----
  217. X  #ifndef TFX
  218. X      /* place holders to align some button groups */
  219. X      { 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
  220. X! #endif
  221. X      { 0, 1, 0, 0, &grid1_ic, F_GRID1, set_grid, set_grid, S_TOG, },
  222. X      { 0, 1, 0, 0, &grid2_ic, F_GRID2, set_grid, set_grid, S_TOG, },
  223. X      { 1, 2, 0, 0, &unconstraint_ic, F_UNCONSTRAINT, set_geometry, null_proc, S_ON, },
  224. X***************
  225. X*** 139,146
  226. X      { 0, 2, 0, 0, &mounthattan_ic, F_MOUNTHATTAN, set_geometry, null_proc, S_ON, },
  227. X      { 0, 2, 0, 0, &manhattan_ic, F_MANHATTAN, set_geometry, null_proc, S_ON, },
  228. X      { 0, 2, 0, 0, &mountain_ic, F_MOUNTAIN, set_geometry, null_proc, S_ON, },
  229. X!     /* Yuck. Latex */
  230. X!     /****************
  231. X      { 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
  232. X      { 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
  233. X      *****************/
  234. X
  235. X--- 153,159 -----
  236. X      { 0, 2, 0, 0, &mounthattan_ic, F_MOUNTHATTAN, set_geometry, null_proc, S_ON, },
  237. X      { 0, 2, 0, 0, &manhattan_ic, F_MANHATTAN, set_geometry, null_proc, S_ON, },
  238. X      { 0, 2, 0, 0, &mountain_ic, F_MOUNTAIN, set_geometry, null_proc, S_ON, },
  239. X! #ifdef TFX
  240. X      { 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
  241. X      { 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
  242. X  #endif
  243. X***************
  244. X*** 143,149
  245. X      /****************
  246. X      { 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
  247. X      { 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
  248. X!     *****************/
  249. X      { 1,  3, 0, 0, &solidline_ic, F_SET_SOLID_LINE, set_style, null_proc, S_ON, },
  250. X      { 0,  3, 0, 0, &dashline_ic, F_SET_DASH_LINE, set_style, null_proc, S_ON, },
  251. X      { 0,  3, 0, 0, &dottedline_ic, F_SET_DOTTED_LINE, set_style, null_proc, S_ON, },
  252. X
  253. X--- 156,162 -----
  254. X  #ifdef TFX
  255. X      { 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
  256. X      { 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
  257. X! #endif
  258. X      { 1,  3, 0, 0, &solidline_ic, F_SET_SOLID_LINE, set_style, null_proc, S_ON, },
  259. X      { 0,  3, 0, 0, &dashline_ic, F_SET_DASH_LINE, set_style, null_proc, S_ON, },
  260. X      { 0,  3, 0, 0, &dottedline_ic, F_SET_DOTTED_LINE, set_style, null_proc, S_ON, },
  261. X***************
  262. X*** 201,207
  263. X      /*  4 */ { XtNhSpace, (XtArgVal)SWITCH_ICON_SPACING },
  264. X      /*  5 */ { XtNvSpace, (XtArgVal)SWITCH_ICON_SPACING },
  265. X      /* Fix the size of the panel window by chaining both top & bottom
  266. X!        to the top, and both left & right to the right */
  267. X      /*  6 */ { XtNtop, (XtArgVal)XtChainTop},
  268. X      /*  7 */ { XtNbottom, (XtArgVal)XtChainTop},
  269. X      /*  8 */ { XtNleft, (XtArgVal)XtChainLeft },
  270. X
  271. X--- 214,221 -----
  272. X      /*  4 */ { XtNhSpace, (XtArgVal)SWITCH_ICON_SPACING },
  273. X      /*  5 */ { XtNvSpace, (XtArgVal)SWITCH_ICON_SPACING },
  274. X      /* Fix the size of the panel window by chaining both top & bottom
  275. X!        to the top of the form, and both left & right to the right.
  276. X!        If RHS_PANEL, then chain left/right to RIGHT of form */
  277. X      /*  6 */ { XtNtop, (XtArgVal)XtChainTop},
  278. X      /*  7 */ { XtNbottom, (XtArgVal)XtChainTop},
  279. X      /*  8 */ { XtNleft, (XtArgVal)XtChainLeft },
  280. X***************
  281. X*** 220,226
  282. X      /* 6 */ { XtNresizable, (XtArgVal) FALSE },
  283. X      /* 7 */ { XtNfromHoriz, (XtArgVal) NULL },
  284. X      /* 8 */ { XtNfromVert, (XtArgVal) NULL },
  285. X!     /* 9 */ { XtNhorizDistance, (XtArgVal) -3*SWITCH_ICON_WIDTH - 6*SWITCH_ICON_SPACING },
  286. X      /* 10 */ { XtNvertDistance, (XtArgVal) 1 },
  287. X      /* Fix the size of the panel window by chaining both top & bottom
  288. X         to the top, and both left & right to the right */
  289. X
  290. X--- 234,240 -----
  291. X      /* 6 */ { XtNresizable, (XtArgVal) FALSE },
  292. X      /* 7 */ { XtNfromHoriz, (XtArgVal) NULL },
  293. X      /* 8 */ { XtNfromVert, (XtArgVal) NULL },
  294. X!     /* 9 */ { XtNhorizDistance, (XtArgVal) SWITCH_ICON_SPACING },
  295. X      /* 10 */ { XtNvertDistance, (XtArgVal) 1 },
  296. X      /* Fix the size of the panel window by chaining both top & bottom
  297. X         to the top of the form, and both left & right to the right */
  298. X***************
  299. X*** 223,229
  300. X      /* 9 */ { XtNhorizDistance, (XtArgVal) -3*SWITCH_ICON_WIDTH - 6*SWITCH_ICON_SPACING },
  301. X      /* 10 */ { XtNvertDistance, (XtArgVal) 1 },
  302. X      /* Fix the size of the panel window by chaining both top & bottom
  303. X!        to the top, and both left & right to the right */
  304. X      /* 11 */ { XtNtop, (XtArgVal)XtChainBottom},
  305. X      /* 12 */ { XtNbottom, (XtArgVal)XtChainBottom},
  306. X      /* 13 */ { XtNleft, (XtArgVal)XtChainLeft },
  307. X
  308. X--- 237,243 -----
  309. X      /* 9 */ { XtNhorizDistance, (XtArgVal) SWITCH_ICON_SPACING },
  310. X      /* 10 */ { XtNvertDistance, (XtArgVal) 1 },
  311. X      /* Fix the size of the panel window by chaining both top & bottom
  312. X!        to the top of the form, and both left & right to the right */
  313. X      /* 11 */ { XtNtop, (XtArgVal)XtChainBottom},
  314. X      /* 12 */ { XtNbottom, (XtArgVal)XtChainBottom},
  315. X      /* 13 */ { XtNleft, (XtArgVal)XtChainLeft },
  316. X***************
  317. X*** 230,235
  318. X      /* 14 */ { XtNright, (XtArgVal)XtChainLeft },
  319. X  };
  320. X  
  321. X  /* widget arguments to show the current fill color and line thickness*/
  322. X  
  323. X  static Arg    indicator_panel_args[] =
  324. X
  325. X--- 244,268 -----
  326. X      /* 14 */ { XtNright, (XtArgVal)XtChainLeft },
  327. X  };
  328. X  
  329. X+ static Arg    ind_box_args[] =
  330. X+ {
  331. X+     /*  0 */ { XtNx, (XtArgVal)0 },
  332. X+     /*  1 */ { XtNy, (XtArgVal)0 },
  333. X+     /*  2 */ { XtNwidth, (XtArgVal)0 },
  334. X+     /*  3 */ { XtNheight, (XtArgVal)0 },
  335. X+     /*  4 */ { XtNhSpace, (XtArgVal)SWITCH_ICON_SPACING },
  336. X+     /*  5 */ { XtNvSpace, (XtArgVal)SWITCH_ICON_SPACING },
  337. X+     /*  6 */ { XtNfromVert, (XtArgVal) NULL },
  338. X+     /*  7 */ { XtNvertDistance, (XtArgVal) SWITCH_ICON_SPACING },
  339. X+     /* Fix the size of the panel window by chaining both top & bottom
  340. X+        to the top of the form, and both left & right to the right
  341. X+        If RHS_PANEL, then chain left/right to RIGHT of form */
  342. X+     /*  8 */ { XtNtop, (XtArgVal)XtChainTop},
  343. X+     /*  9 */ { XtNbottom, (XtArgVal)XtChainTop},
  344. X+     /* 10 */ { XtNleft, (XtArgVal)XtChainLeft },
  345. X+     /* 11 */ { XtNright, (XtArgVal)XtChainLeft },
  346. X+ };
  347. X+ 
  348. X  /* widget arguments to show the current fill color and line thickness*/
  349. X  
  350. X  static Arg    indicator_panel_args[] =
  351. X***************
  352. X*** 241,257
  353. X      /*  4 */ { XtNheight, (XtArgVal) SWITCH_ICON_HEIGHT },
  354. X      /*  5 */ { XtNresizable, (XtArgVal) FALSE },
  355. X      /*  6 */ { XtNborderWidth, (XtArgVal) 1},
  356. X!     /*  7 */ { XtNhorizDistance, (XtArgVal) 0 },
  357. X!     /*  8 */ { XtNvertDistance, (XtArgVal) 0 },
  358. X!     /*  9 */ { XtNfromHoriz, (XtArgVal) NULL },
  359. X!     /* 10 */ { XtNfromVert, (XtArgVal) NULL },
  360. X!     /* Fix the size of the panel window by chaining both top & bottom
  361. X!        to the top, and both left & right to the right */
  362. X!     /* 11 */ { XtNtop, (XtArgVal)XtChainTop},
  363. X!     /* 12 */ { XtNbottom, (XtArgVal)XtChainTop},
  364. X!     /* 13 */ { XtNleft, (XtArgVal)XtChainLeft },
  365. X!     /* 14 */ { XtNright, (XtArgVal)XtChainLeft },
  366. X!     /* 15 */ { XtNbackgroundPixmap, (XtArgVal) NULL },
  367. X  };
  368. X  
  369. X  extern void button_select();
  370. X
  371. X--- 274,280 -----
  372. X      /*  4 */ { XtNheight, (XtArgVal) SWITCH_ICON_HEIGHT },
  373. X      /*  5 */ { XtNresizable, (XtArgVal) FALSE },
  374. X      /*  6 */ { XtNborderWidth, (XtArgVal) 1},
  375. X!     /*  7 */ { XtNbackgroundPixmap, (XtArgVal) NULL },
  376. X  };
  377. X  
  378. X  static void button_select();
  379. X***************
  380. X*** 254,260
  381. X      /* 15 */ { XtNbackgroundPixmap, (XtArgVal) NULL },
  382. X  };
  383. X  
  384. X! extern void button_select();
  385. X  
  386. X  /* we aren't using the callback anymore - see sel_but() */
  387. X  static XtCallbackRec    button_callbacks[] =
  388. X
  389. X--- 277,283 -----
  390. X      /*  7 */ { XtNbackgroundPixmap, (XtArgVal) NULL },
  391. X  };
  392. X  
  393. X! static void button_select();
  394. X  
  395. X  /* we aren't using the callback anymore - see sel_but() */
  396. X  static XtCallbackRec    button_callbacks[] =
  397. X***************
  398. X*** 285,291
  399. X  extern int    PANEL2_LEFT, PANEL2_TOP, PANEL2_HEIGHT, PANEL2_WID;
  400. X  extern int    CANVAS_HEIGHT, ICON_COLUMN;
  401. X  
  402. X! extern right_but();
  403. X  
  404. X  /* button selection event handler */
  405. X  extern sel_but();
  406. X
  407. X--- 308,314 -----
  408. X  extern int    PANEL2_LEFT, PANEL2_TOP, PANEL2_HEIGHT, PANEL2_WID;
  409. X  extern int    CANVAS_HEIGHT, ICON_COLUMN;
  410. X  
  411. X! static right_but();
  412. X  
  413. X  /* button selection event handler */
  414. X  static sel_but();
  415. X***************
  416. X*** 288,294
  417. X  extern right_but();
  418. X  
  419. X  /* button selection event handler */
  420. X! extern sel_but();
  421. X  
  422. X  int 
  423. X  init_panel(tool)
  424. X
  425. X--- 311,317 -----
  426. X  static right_but();
  427. X  
  428. X  /* button selection event handler */
  429. X! static sel_but();
  430. X  
  431. X  int 
  432. X  init_panel(tool)
  433. X***************
  434. X*** 297,302
  435. X      register int        i;
  436. X      register F_switch    *sw;
  437. X  
  438. X      panel_args[2].value = PANEL_WID =
  439. X          (SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING) * ICON_COLUMN
  440. X          + SWITCH_ICON_SPACING;
  441. X
  442. X--- 320,326 -----
  443. X      register int        i;
  444. X      register F_switch    *sw;
  445. X  
  446. X+     /* width */
  447. X      panel_args[2].value = PANEL_WID =
  448. X          (SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING) * ICON_COLUMN
  449. X          + SWITCH_ICON_SPACING;
  450. X***************
  451. X*** 300,305
  452. X      panel_args[2].value = PANEL_WID =
  453. X          (SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING) * ICON_COLUMN
  454. X          + SWITCH_ICON_SPACING;
  455. X      panel_args[3].value = PANEL_HEIGHT = CANVAS_HEIGHT + RULER_WIDTH + MSG_HEIGHT;
  456. X      panel_sw = XtCreateWidget("panel", boxWidgetClass, tool, panel_args,
  457. X          XtNumber(panel_args));
  458. X
  459. X--- 324,330 -----
  460. X      panel_args[2].value = PANEL_WID =
  461. X          (SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING) * ICON_COLUMN
  462. X          + SWITCH_ICON_SPACING;
  463. X+     /* height */
  464. X      panel_args[3].value = PANEL_HEIGHT = CANVAS_HEIGHT + RULER_WIDTH + MSG_HEIGHT;
  465. X      panel_sw = XtCreateWidget("panel", boxWidgetClass, tool, panel_args,
  466. X          XtNumber(panel_args));
  467. X***************
  468. X*** 314,320
  469. X          sw->but.widget = XtCreateManagedWidget(
  470. X              "button", commandWidgetClass,
  471. X              panel_sw, button_args, XtNumber(button_args));
  472. X!         /* allow left and right buttons (callbacks pass same data for ANY button) */
  473. X          XtAddEventHandler(sw->but.widget,ButtonPressMask,(Boolean) 0, 
  474. X              sel_but, (caddr_t) sw);
  475. X      }
  476. X
  477. X--- 339,345 -----
  478. X          sw->but.widget = XtCreateManagedWidget(
  479. X              "button", commandWidgetClass,
  480. X              panel_sw, button_args, XtNumber(button_args));
  481. X!         /* allow left & right buttons (callbacks pass same data for ANY button) */
  482. X          XtAddEventHandler(sw->but.widget,ButtonPressMask,(Boolean) 0, 
  483. X              sel_but, (caddr_t) sw);
  484. X      }
  485. X***************
  486. X*** 333,341
  487. X      panel2_args[2].value = PANEL2_WID = 2 * N_SWITCHES2 *
  488. X              (SWITCH_ICON_WIDTH + SWITCH_ICON_SPACING)
  489. X              + SWITCH_ICON_SPACING;
  490. X!     panel2_args[3].value = PANEL2_HEIGHT = SWITCH_ICON_HEIGHT + 3 * SWITCH_ICON_SPACING;
  491. X!     panel2_args[7].value = (XtArgVal) panel_sw;    /* horiz offset from panel_sw */
  492. X!     panel2_args[8].value = (XtArgVal) psfont;    /* vert offset from font window */
  493. X  
  494. X      panel2_sw = XtCreateWidget("panel2", boxWidgetClass, tool, panel2_args,
  495. X          XtNumber(panel2_args));
  496. X
  497. X--- 358,365 -----
  498. X      panel2_args[2].value = PANEL2_WID = 2 * N_SWITCHES2 *
  499. X              (SWITCH_ICON_WIDTH + SWITCH_ICON_SPACING)
  500. X              + SWITCH_ICON_SPACING;
  501. X!     panel2_args[3].value=PANEL2_HEIGHT= SWITCH_ICON_HEIGHT + 3*SWITCH_ICON_SPACING;
  502. X!     panel2_args[8].value = (XtArgVal) psfont;  /* vert offset from font window */
  503. X  
  504. X      panel2_sw = XtCreateWidget("bottom_panel", boxWidgetClass, tool, panel2_args,
  505. X          XtNumber(panel2_args));
  506. X***************
  507. X*** 337,343
  508. X      panel2_args[7].value = (XtArgVal) panel_sw;    /* horiz offset from panel_sw */
  509. X      panel2_args[8].value = (XtArgVal) psfont;    /* vert offset from font window */
  510. X  
  511. X!     panel2_sw = XtCreateWidget("panel2", boxWidgetClass, tool, panel2_args,
  512. X          XtNumber(panel2_args));
  513. X      for (i = 0; i < N_SWITCHES2; ++i)
  514. X      {
  515. X
  516. X--- 361,367 -----
  517. X      panel2_args[3].value=PANEL2_HEIGHT= SWITCH_ICON_HEIGHT + 3*SWITCH_ICON_SPACING;
  518. X      panel2_args[8].value = (XtArgVal) psfont;  /* vert offset from font window */
  519. X  
  520. X!     panel2_sw = XtCreateWidget("bottom_panel", boxWidgetClass, tool, panel2_args,
  521. X          XtNumber(panel2_args));
  522. X      for (i = 0; i < N_SWITCHES2; ++i)
  523. X      {
  524. X***************
  525. X*** 356,361
  526. X      return (1);
  527. X  }
  528. X  
  529. X  init_indicator_panel(tool)
  530. X  TOOL tool;
  531. X      {
  532. X
  533. X--- 380,387 -----
  534. X      return (1);
  535. X  }
  536. X  
  537. X+ Widget ind_box;
  538. X+ 
  539. X  init_indicator_panel(tool)
  540. X  TOOL tool;
  541. X      {
  542. X***************
  543. X*** 359,369
  544. X  init_indicator_panel(tool)
  545. X  TOOL tool;
  546. X      {
  547. X!         /* vert position */
  548. X!         indicator_panel_args[8].value = (XtArgVal) 2*SWITCH_ICON_SPACING;
  549. X!         indicator_panel_args[9].value = (XtArgVal) panel_sw;
  550. X!         indicator_panel_args[10].value = (XtArgVal) panel_sw;
  551. X!         indicator_panel_args[15].value = (XtArgVal) ind_fill_pm[0];/* white pixmap */
  552. X  
  553. X          /* horiz position for line thickness indicator */
  554. X          indicator_panel_args[7].value = (XtArgVal) 
  555. X
  556. X--- 385,395 -----
  557. X  init_indicator_panel(tool)
  558. X  TOOL tool;
  559. X      {
  560. X!     /* width */
  561. X!     ind_box_args[2].value = 
  562. X!         (SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING)*3 + SWITCH_ICON_SPACING;
  563. X!     /* height */
  564. X!     ind_box_args[3].value = SWITCH_ICON_HEIGHT+2*SWITCH_ICON_SPACING;
  565. X  
  566. X      /* put below bottom of panel_sw */
  567. X      ind_box_args[6].value = (XtArgVal) panel_sw;
  568. X***************
  569. X*** 365,375
  570. X          indicator_panel_args[10].value = (XtArgVal) panel_sw;
  571. X          indicator_panel_args[15].value = (XtArgVal) ind_fill_pm[0];/* white pixmap */
  572. X  
  573. X!         /* horiz position for line thickness indicator */
  574. X!         indicator_panel_args[7].value = (XtArgVal) 
  575. X!             -SWITCH_ICON_WIDTH*ICON_COLUMN - SWITCH_ICON_SPACING*(ICON_COLUMN+2);
  576. X!         line_thick_panel = XtCreateManagedWidget( "indicator", boxWidgetClass,
  577. X!             tool, indicator_panel_args, XtNumber(indicator_panel_args));
  578. X  
  579. X          /* horiz position for rounded-corner box radius indicator */
  580. X          indicator_panel_args[7].value += SWITCH_ICON_WIDTH+1.5*SWITCH_ICON_SPACING;
  581. X
  582. X--- 391,398 -----
  583. X      /* height */
  584. X      ind_box_args[3].value = SWITCH_ICON_HEIGHT+2*SWITCH_ICON_SPACING;
  585. X  
  586. X!     /* put below bottom of panel_sw */
  587. X!     ind_box_args[6].value = (XtArgVal) panel_sw;
  588. X  
  589. X      ind_box = XtCreateWidget("indicator", boxWidgetClass, tool, ind_box_args,
  590. X          XtNumber(ind_box_args));
  591. X***************
  592. X*** 371,385
  593. X          line_thick_panel = XtCreateManagedWidget( "indicator", boxWidgetClass,
  594. X              tool, indicator_panel_args, XtNumber(indicator_panel_args));
  595. X  
  596. X!         /* horiz position for rounded-corner box radius indicator */
  597. X!         indicator_panel_args[7].value += SWITCH_ICON_WIDTH+1.5*SWITCH_ICON_SPACING;
  598. X!         radius_panel = XtCreateManagedWidget( "indicator", boxWidgetClass,
  599. X!             tool, indicator_panel_args, XtNumber(indicator_panel_args));
  600. X!                 
  601. X!         /* horiz position for fill_area color */
  602. X!         indicator_panel_args[7].value += SWITCH_ICON_WIDTH+1.5*SWITCH_ICON_SPACING;
  603. X!         fill_panel = XtCreateManagedWidget( "indicator", boxWidgetClass,
  604. X!             tool, indicator_panel_args, XtNumber(indicator_panel_args));
  605. X      }
  606. X  
  607. X  static GC button_gc;
  608. X
  609. X--- 394,418 -----
  610. X      /* put below bottom of panel_sw */
  611. X      ind_box_args[6].value = (XtArgVal) panel_sw;
  612. X  
  613. X!     ind_box = XtCreateWidget("indicator", boxWidgetClass, tool, ind_box_args,
  614. X!         XtNumber(ind_box_args));
  615. X! 
  616. X!     indicator_panel_args[7].value = (XtArgVal) ind_fill_pm[0];/* white pixmap */
  617. X! 
  618. X!     /* horiz position for line thickness indicator */
  619. X!     indicator_panel_args[0].value = (XtArgVal) SWITCH_ICON_SPACING;
  620. X!     line_thick_panel = XtCreateManagedWidget( "linewidth_indicator", boxWidgetClass,
  621. X!         ind_box, indicator_panel_args, XtNumber(indicator_panel_args));
  622. X! 
  623. X!     /* horiz position for rounded-corner box radius indicator */
  624. X!     indicator_panel_args[0].value += SWITCH_ICON_WIDTH+SWITCH_ICON_SPACING;
  625. X!     radius_panel = XtCreateManagedWidget( "radius_indicator", boxWidgetClass,
  626. X!         ind_box, indicator_panel_args, XtNumber(indicator_panel_args));
  627. X!             
  628. X!     /* horiz position for fill_area color */
  629. X!     indicator_panel_args[0].value += SWITCH_ICON_WIDTH+SWITCH_ICON_SPACING;
  630. X!     fill_panel = XtCreateManagedWidget( "fill_indicator", boxWidgetClass,
  631. X!         ind_box, indicator_panel_args, XtNumber(indicator_panel_args));
  632. X      }
  633. X  
  634. X  static GC button_gc;
  635. X***************
  636. X*** 384,389
  637. X  
  638. X  static GC button_gc;
  639. X  
  640. X  setup_panel()
  641. X  {
  642. X      register int        i;
  643. X
  644. X--- 417,424 -----
  645. X  
  646. X  static GC button_gc;
  647. X  
  648. X+ /* come here after panel widget is realized to put some bitmaps etc. things in it */
  649. X+ 
  650. X  setup_panel()
  651. X  {
  652. X      register int        i;
  653. X***************
  654. X*** 1043,1050
  655. X         then giving it the modified one again.  Otherwise, it sees
  656. X         that the pixmap ID is not changed and doesn't actually draw
  657. X         it into the widget window */
  658. X!     indicator_panel_args[15].value = 0;
  659. X!     XtSetValues(line_thick_panel, &indicator_panel_args[15], 1);
  660. X  
  661. X      /* put the pixmap in the widget background */
  662. X      indicator_panel_args[15].value = line_pm;
  663. X
  664. X--- 1078,1085 -----
  665. X         then giving it the modified one again.  Otherwise, it sees
  666. X         that the pixmap ID is not changed and doesn't actually draw
  667. X         it into the widget window */
  668. X!     indicator_panel_args[7].value = 0;
  669. X!     XtSetValues(line_thick_panel, &indicator_panel_args[7], 1);
  670. X  
  671. X      /* put the pixmap in the widget background */
  672. X      indicator_panel_args[7].value = line_pm;
  673. X***************
  674. X*** 1047,1054
  675. X      XtSetValues(line_thick_panel, &indicator_panel_args[15], 1);
  676. X  
  677. X      /* put the pixmap in the widget background */
  678. X!     indicator_panel_args[15].value = line_pm;
  679. X!     XtSetValues(line_thick_panel, &indicator_panel_args[15], 1);
  680. X      put_msg("LINE Thickness = %d",line_thickness);
  681. X      }
  682. X  
  683. X
  684. X--- 1082,1089 -----
  685. X      XtSetValues(line_thick_panel, &indicator_panel_args[7], 1);
  686. X  
  687. X      /* put the pixmap in the widget background */
  688. X!     indicator_panel_args[7].value = line_pm;
  689. X!     XtSetValues(line_thick_panel, &indicator_panel_args[7], 1);
  690. X      put_msg("LINE Thickness = %d",line_thickness);
  691. X      }
  692. X  
  693. X***************
  694. X*** 1094,1101
  695. X         then giving it the modified one again.  Otherwise, it sees
  696. X         that the pixmap ID is not changed and doesn't actually draw
  697. X         it into the widget window */
  698. X!     indicator_panel_args[15].value = 0;
  699. X!     XtSetValues(radius_panel, &indicator_panel_args[15], 1);
  700. X  
  701. X      /* put the pixmap in the widget background */
  702. X      indicator_panel_args[15].value = radius_pm;
  703. X
  704. X--- 1129,1136 -----
  705. X         then giving it the modified one again.  Otherwise, it sees
  706. X         that the pixmap ID is not changed and doesn't actually draw
  707. X         it into the widget window */
  708. X!     indicator_panel_args[7].value = 0;
  709. X!     XtSetValues(radius_panel, &indicator_panel_args[7], 1);
  710. X  
  711. X      /* put the pixmap in the widget background */
  712. X      indicator_panel_args[7].value = radius_pm;
  713. X***************
  714. X*** 1098,1105
  715. X      XtSetValues(radius_panel, &indicator_panel_args[15], 1);
  716. X  
  717. X      /* put the pixmap in the widget background */
  718. X!     indicator_panel_args[15].value = radius_pm;
  719. X!     XtSetValues(radius_panel, &indicator_panel_args[15], 1);
  720. X      put_msg("ROUNDED-CORNER BOX Radius = %d",cur_radius);
  721. X      }
  722. X  
  723. X
  724. X--- 1133,1140 -----
  725. X      XtSetValues(radius_panel, &indicator_panel_args[7], 1);
  726. X  
  727. X      /* put the pixmap in the widget background */
  728. X!     indicator_panel_args[7].value = radius_pm;
  729. X!     XtSetValues(radius_panel, &indicator_panel_args[7], 1);
  730. X      put_msg("ROUNDED-CORNER BOX Radius = %d",cur_radius);
  731. X      }
  732. X  
  733. X***************
  734. X*** 1122,1129
  735. X  show_fill_color()
  736. X      {
  737. X      /* put fill pixmap in widget background */
  738. X!     indicator_panel_args[15].value = ind_fill_pm[cur_areafill-1]; 
  739. X!     XtSetValues(fill_panel, &indicator_panel_args[15], 1);
  740. X      put_fmsg("FILL GRAY = %.2f", 1.0-(cur_areafill-1.0)/(NUMFILLPATS-1.0));
  741. X      }
  742. X  
  743. X
  744. X--- 1157,1164 -----
  745. X  show_fill_color()
  746. X      {
  747. X      /* put fill pixmap in widget background */
  748. X!     indicator_panel_args[7].value = ind_fill_pm[cur_areafill-1]; 
  749. X!     XtSetValues(fill_panel, &indicator_panel_args[7], 1);
  750. X      put_fmsg("FILL GRAY = %.2f", 1.0-(cur_areafill-1.0)/(NUMFILLPATS-1.0));
  751. X      }
  752. X  
  753. X***************
  754. X*** 1181,1187
  755. X  edit_button(sw)
  756. X  F_switch *sw;
  757. X      {
  758. X!     init_msg_receiving(edit_file, "Edit file : ");
  759. X      }
  760. X  
  761. X  /* change directories */
  762. X
  763. X--- 1216,1222 -----
  764. X  edit_button(sw)
  765. X  F_switch *sw;
  766. X      {
  767. X!     edit();
  768. X      }
  769. X  
  770. X  /* change directories */
  771. X***************
  772. X*** 1231,1236
  773. X      printer=printer_list[cur_printer];
  774. X      put_msg("SELECT PRINTER: %s",printer);
  775. X  
  776. X      /* write the printer name in the background pixmap */
  777. X      XDrawImageString(tool_d, print_sel_pm, button_gc, 
  778. X              32, 14, printer, strlen(printer));
  779. X
  780. X--- 1266,1274 -----
  781. X      printer=printer_list[cur_printer];
  782. X      put_msg("SELECT PRINTER: %s",printer);
  783. X  
  784. X+     /* first erase any existing string in pixmap */
  785. X+     XDrawImageString(tool_d, print_sel_pm, button_gc, 
  786. X+             6, 28, "        ", 8);
  787. X      /* write the printer name in the background pixmap */
  788. X      XDrawImageString(tool_d, print_sel_pm, button_gc, 
  789. X              6, 28, printer, strlen(printer));
  790. X***************
  791. X*** 1233,1239
  792. X  
  793. X      /* write the printer name in the background pixmap */
  794. X      XDrawImageString(tool_d, print_sel_pm, button_gc, 
  795. X!             32, 14, printer, strlen(printer));
  796. X  
  797. X      /* Fool the toolkit by changing the background pixmap to 0
  798. X         then giving it the modified one again.  Otherwise, it sees
  799. X
  800. X--- 1271,1277 -----
  801. X              6, 28, "        ", 8);
  802. X      /* write the printer name in the background pixmap */
  803. X      XDrawImageString(tool_d, print_sel_pm, button_gc, 
  804. X!             6, 28, printer, strlen(printer));
  805. X  
  806. X      /* Fool the toolkit by changing the background pixmap to 0
  807. X         then giving it the modified one again.  Otherwise, it sees
  808. END_OF_FILE
  809. if test 29567 -ne `wc -c <'panel.c.diff'`; then
  810.     echo shar: \"'panel.c.diff'\" unpacked with wrong size!
  811. fi
  812. # end of 'panel.c.diff'
  813. fi
  814. echo shar: End of archive 3 \(of 3\).
  815. cp /dev/null ark3isdone
  816. MISSING=""
  817. for I in 1 2 3 ; do
  818.     if test ! -f ark${I}isdone ; then
  819.     MISSING="${MISSING} ${I}"
  820.     fi
  821. done
  822. if test "${MISSING}" = "" ; then
  823.     echo You have unpacked all 3 archives.
  824.     rm -f ark[1-9]isdone
  825. else
  826.     echo You still need to unpack the following archives:
  827.     echo "        " ${MISSING}
  828. fi
  829. ##  End of shell archive.
  830. exit 0
  831.  
  832. dan
  833. -----------------------------------------------------------
  834.             O'Reilly && Associates
  835.         argv@sun.com / argv@ora.com
  836.        632 Petaluma Ave, Sebastopol, CA 95472 
  837.      800-338-NUTS, in CA: 800-533-NUTS, FAX 707-829-0104
  838.     Opinions expressed reflect those of the author only.
  839.